   1              		.syntax unified
   2              		.cpu cortex-m3
   3              		.fpu softvfp
   4              		.eabi_attribute 20, 1
   5              		.eabi_attribute 21, 1
   6              		.eabi_attribute 23, 3
   7              		.eabi_attribute 24, 1
   8              		.eabi_attribute 25, 1
   9              		.eabi_attribute 26, 1
  10              		.eabi_attribute 30, 4
  11              		.eabi_attribute 34, 1
  12              		.eabi_attribute 18, 4
  13              		.thumb
  14              		.syntax unified
  15              		.file	"timer1.c"
  16              		.text
  17              	.Ltext0:
  18              		.cfi_sections	.debug_frame
  19              		.section	.text.timer1_Set,"ax",%progbits
  20              		.align	1
  21              		.global	timer1_Set
  22              		.thumb
  23              		.thumb_func
  25              	timer1_Set:
  26              	.LFB1:
  27              		.file 1 "uc_libc_dev/_arch/arm_lpc/timer/timer1.c"
   1:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** #include "timer1.h"
   2:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** #if defined(cortexm3)
   3:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** #include "arm.h"
   4:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** #endif
   5:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
   6:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** void timer1_ISR(void);
   7:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
   8:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** typedef void (*void_pFunc)(void);
   9:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** volatile void_pFunc timer1_IntFunctions[TIMER1_NUM_INTERRUPTS];
  10:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
  11:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** volatile u32 Timer1CountOverflow;  // Conta a quantidade de vezes que o MATCH0 é alcançado
  12:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
  13:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ################################################################################################
  14:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // TIMER 1
  15:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ################################################################################################
  16:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ################################################################################################
  17:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
  18:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ------------------------------------------------------------------------------------------------
  19:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Descrição: 	Inicializa Timer 1
  20:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Parametros:	Prescaler: valores de 1 a 32bits
  21:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** //					Alguns valores padrões T1MPR_DIVx [x = 1,2,4,8,16,32,64,128,256,512,1024]
  22:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // 				sts: T1TCR_ENABLE  	// Habilita o contador do timer
  23:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** //					 T1TCR_STOP		// Desabilita o contador do timer
  24:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** //				Habilitar ints para TC=reg MCRx: T1MCR_MR_NO_INT / T1_CONT_OVERFLOW ( T1MCR_MR[0..3]_INT_ENAB
  25:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** //					T1MCR_NO_INT				- Sem interrupções para match ou PWM
  26:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** //					T1MCR_OVERFLOW				- Indica para habilitar interrupção MR0 para pelo menos fazer a contagem d
  27:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** //					T1MCR_MR[0..3]_INT_ENABLE 	- Indica para habilitar interrupção de contador do timer igualar 
  28:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // 					T1MCR_MR[0..3]_RESET 		- Indica quais das comparações deve resetar o contador TC
  29:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** //					T1MCR_MR[0..3]_STOP 		- Indica quais das comparações deve parar o contador TC
  30:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Retorna:		retorna pdPASS se iniciliazou sem problemas ou retorna código de erro
  31:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ------------------------------------------------------------------------------------------------
  32:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** int timer1_Init(u32 prescale, u8 sts, u16 ints) {
  33:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	u8 int_num;
  34:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	
  35:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	PCONP |= PCTIM1;														// Ligar o timer no controle de potencia. Tem que ser antes da confi
  36:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	
  37:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	T1IR  = 0xFF;															// Limpa todas as interrupções
  38:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	T1TCR = T1TCR_RESET;													// Reset o contador e mantem em reset
  39:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	timer1_SetPrescale(prescale);											// Ajusta o precaler do contador TC
  40:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	T1MCR = ints;															// Liga as interrupções quando TC = MCRx
  41:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	T1MR0 = 0;																// zera o match0 para usarmos como contador de overflow
  42:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	
  43:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	for(int_num = 0; int_num < TIMER1_NUM_INTERRUPTS; int_num++)			// Faça para todas as interrupções 
  44:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 		timer1_ClearIntHandler(int_num);									// Retira todas as funções anexadas em suas respecticas 
  45:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	
  46:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	#if defined(arm7tdmi)
  47:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	if (!irq_Install(VIC_TIMER1, timer1_ISR, TIMER1_PRIO_LEVEL))			// Instala o ISR a VIC
  48:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 		return errIRQ_INSTALL;												// Retonar falso se não conseguiu inttalar a ISR a VIC
  49:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	#endif
  50:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	
  51:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	#if defined (cortexm3)
  52:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	nvic_enableIRQ(VIC_TIMER1);
  53:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	nvic_setPriority(VIC_TIMER1, TIMER1_PRIO_LEVEL);
  54:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	#endif
  55:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 		
  56:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	timer1_Set(sts);														// Ajusta a condição do timer. Ligado ou desligado
  57:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
  58:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	return pdPASS;
  59:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** }
  60:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
  61:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ------------------------------------------------------------------------------------------------
  62:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Descrição: 	Liga, desliga e re-inicia o timer
  63:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Parametros:	STS: T1TCR_ENABLE  	// Habilita o contador do timer
  64:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** //					 T1TCR_STOP		// Desabilita o contador do timer
  65:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Retorna:		Nada
  66:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ------------------------------------------------------------------------------------------------
  67:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** void timer1_Set(u8 sts) {
  28              		.loc 1 67 0
  29              		.cfi_startproc
  30              		@ args = 0, pretend = 0, frame = 0
  31              		@ frame_needed = 0, uses_anonymous_args = 0
  32              		@ link register save eliminated.
  33              	.LVL0:
  68:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	T1TCR &= ~(T1TCR_ENABLE | T1TCR_RESET);
  34              		.loc 1 68 0
  35 0000 044B     		ldr	r3, .L2
  36 0002 1A68     		ldr	r2, [r3]
  37 0004 22F00302 		bic	r2, r2, #3
  38 0008 1A60     		str	r2, [r3]
  69:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	T1TCR|=sts;
  39              		.loc 1 69 0
  40 000a 1A68     		ldr	r2, [r3]
  41 000c 1043     		orrs	r0, r0, r2
  42              	.LVL1:
  43 000e 1860     		str	r0, [r3]
  44 0010 7047     		bx	lr
  45              	.L3:
  46 0012 00BF     		.align	2
  47              	.L2:
  48 0014 04800040 		.word	1073774596
  49              		.cfi_endproc
  50              	.LFE1:
  52              		.section	.text.timer1_SetIntHandler,"ax",%progbits
  53              		.align	1
  54              		.global	timer1_SetIntHandler
  55              		.thumb
  56              		.thumb_func
  58              	timer1_SetIntHandler:
  59              	.LFB2:
  70:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** }
  71:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
  72:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ------------------------------------------------------------------------------------------------
  73:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Descrição: 	Anexa uma routina ao vetor de interrupçao
  74:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Parametros:	int_num. Indece do vetor de uma determinada interrupção de timer
  75:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // 					TIMER1_VECTOR_INT_MATCH0
  76:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // 					TIMER1_VECTOR_INT_MATCH1
  77:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // 					TIMER1_VECTOR_INT_MATCH2
  78:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // 					TIMER1_VECTOR_INT_MATCH3
  79:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // 					TIMER1_VECTOR_INT_CAPTURE0
  80:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // 					TIMER1_VECTOR_INT_CAPTURE1
  81:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // 					TIMER1_VECTOR_INT_CAPTURE2
  82:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // 					TIMER1_VECTOR_INT_CAPTURE3
  83:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** //				int_func
  84:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** //					Ponteiro da rotina que tratará a interrupção do timer. 
  85:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** //						Ex	timer1_SetIntHandler(TIMER1_VECTOR_INT_OVERFLOW, myOverflowFunction);
  86:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Retorna:		Nada
  87:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ------------------------------------------------------------------------------------------------
  88:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** void timer1_SetIntHandler(u8 int_num, void (*int_func)(void) ) {
  60              		.loc 1 88 0
  61              		.cfi_startproc
  62              		@ args = 0, pretend = 0, frame = 0
  63              		@ frame_needed = 0, uses_anonymous_args = 0
  64              		@ link register save eliminated.
  65              	.LVL2:
  89:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	if(int_num < TIMER1_NUM_INTERRUPTS)
  66              		.loc 1 89 0
  67 0000 0728     		cmp	r0, #7
  90:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 		timer1_IntFunctions[int_num] = int_func;
  68              		.loc 1 90 0
  69 0002 9CBF     		itt	ls
  70 0004 014B     		ldrls	r3, .L6
  71 0006 43F82010 		strls	r1, [r3, r0, lsl #2]
  72 000a 7047     		bx	lr
  73              	.L7:
  74              		.align	2
  75              	.L6:
  76 000c 00000000 		.word	timer1_IntFunctions
  77              		.cfi_endproc
  78              	.LFE2:
  80              		.section	.text.timer1_ClearIntHandler,"ax",%progbits
  81              		.align	1
  82              		.global	timer1_ClearIntHandler
  83              		.thumb
  84              		.thumb_func
  86              	timer1_ClearIntHandler:
  87              	.LFB3:
  91:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** }
  92:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
  93:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ------------------------------------------------------------------------------------------------
  94:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Descrição: 	Retira a routina da inetrrupçao desejada do vetor de interrupçao
  95:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Parametros:	int_num. Indece do vetor de uma determinada interrupção de timer
  96:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // 					TIMER1_VECTOR_INT_MATCH0
  97:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // 					TIMER1_VECTOR_INT_MATCH1
  98:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // 					TIMER1_VECTOR_INT_MATCH2
  99:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // 					TIMER1_VECTOR_INT_MATCH3
 100:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // 					TIMER1_VECTOR_INT_CAPTURE0
 101:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // 					TIMER1_VECTOR_INT_CAPTURE1
 102:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // 					TIMER1_VECTOR_INT_CAPTURE2
 103:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // 					TIMER1_VECTOR_INT_CAPTURE3
 104:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Retorna:		Nada
 105:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ------------------------------------------------------------------------------------------------
 106:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** void timer1_ClearIntHandler(u8 int_num) {
  88              		.loc 1 106 0
  89              		.cfi_startproc
  90              		@ args = 0, pretend = 0, frame = 0
  91              		@ frame_needed = 0, uses_anonymous_args = 0
  92              		@ link register save eliminated.
  93              	.LVL3:
 107:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	if(int_num < TIMER1_NUM_INTERRUPTS)
  94              		.loc 1 107 0
  95 0000 0728     		cmp	r0, #7
 108:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 		timer1_IntFunctions[int_num] = 0;
  96              		.loc 1 108 0
  97 0002 9EBF     		ittt	ls
  98 0004 024B     		ldrls	r3, .L10
  99 0006 0022     		movls	r2, #0
 100 0008 43F82020 		strls	r2, [r3, r0, lsl #2]
 101 000c 7047     		bx	lr
 102              	.L11:
 103 000e 00BF     		.align	2
 104              	.L10:
 105 0010 00000000 		.word	timer1_IntFunctions
 106              		.cfi_endproc
 107              	.LFE3:
 109              		.section	.text.timer1_Init,"ax",%progbits
 110              		.align	1
 111              		.global	timer1_Init
 112              		.thumb
 113              		.thumb_func
 115              	timer1_Init:
 116              	.LFB0:
  32:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	u8 int_num;
 117              		.loc 1 32 0
 118              		.cfi_startproc
 119              		@ args = 0, pretend = 0, frame = 0
 120              		@ frame_needed = 0, uses_anonymous_args = 0
 121              	.LVL4:
 122 0000 10B5     		push	{r4, lr}
 123              	.LCFI0:
 124              		.cfi_def_cfa_offset 8
 125              		.cfi_offset 4, -8
 126              		.cfi_offset 14, -4
  32:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	u8 int_num;
 127              		.loc 1 32 0
 128 0002 0C46     		mov	r4, r1
  35:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	
 129              		.loc 1 35 0
 130 0004 1049     		ldr	r1, .L16
 131              	.LVL5:
 132              	.LBB4:
 133              	.LBB5:
 109:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** }
 110:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
 111:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ------------------------------------------------------------------------------------------------
 112:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Descrição: 	Ajusta o prescale do timer
 113:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Parametros:	Valor do prescale de 1 a 2^^32bits
 114:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Retorna:		Nada
 115:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ------------------------------------------------------------------------------------------------
 116:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** void timer1_SetPrescale(u32 prescale) {
 117:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	T1PR = prescale - 1;
 134              		.loc 1 117 0
 135 0006 0138     		subs	r0, r0, #1
 136              	.LVL6:
 137              	.LBE5:
 138              	.LBE4:
  35:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	
 139              		.loc 1 35 0
 140 0008 0B68     		ldr	r3, [r1]
 141 000a 43F00403 		orr	r3, r3, #4
 142 000e 0B60     		str	r3, [r1]
  37:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	T1TCR = T1TCR_RESET;													// Reset o contador e mantem em reset
 143              		.loc 1 37 0
 144 0010 0E4B     		ldr	r3, .L16+4
 145 0012 FF21     		movs	r1, #255
 146 0014 1960     		str	r1, [r3]
  38:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	timer1_SetPrescale(prescale);											// Ajusta o precaler do contador TC
 147              		.loc 1 38 0
 148 0016 0221     		movs	r1, #2
 149 0018 5960     		str	r1, [r3, #4]
  41:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	
 150              		.loc 1 41 0
 151 001a 0021     		movs	r1, #0
 152              	.LBB7:
 153              	.LBB6:
 154              		.loc 1 117 0
 155 001c D860     		str	r0, [r3, #12]
 156              	.LBE6:
 157              	.LBE7:
  40:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	T1MR0 = 0;																// zera o match0 para usarmos como contador de overflow
 158              		.loc 1 40 0
 159 001e 5A61     		str	r2, [r3, #20]
  41:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	
 160              		.loc 1 41 0
 161 0020 9961     		str	r1, [r3, #24]
 162              	.LVL7:
 163              	.L13:
  44:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	
 164              		.loc 1 44 0 discriminator 3
 165 0022 C8B2     		uxtb	r0, r1
 166 0024 FFF7FEFF 		bl	timer1_ClearIntHandler
 167              	.LVL8:
 168 0028 0131     		adds	r1, r1, #1
 169              	.LVL9:
  43:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 		timer1_ClearIntHandler(int_num);									// Retira todas as funções anexadas em suas respecticas 
 170              		.loc 1 43 0 discriminator 3
 171 002a 0829     		cmp	r1, #8
 172 002c F9D1     		bne	.L13
  52:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	nvic_setPriority(VIC_TIMER1, TIMER1_PRIO_LEVEL);
 173              		.loc 1 52 0
 174 002e 0220     		movs	r0, #2
 175 0030 FFF7FEFF 		bl	nvic_enableIRQ
 176              	.LVL10:
  53:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	#endif
 177              		.loc 1 53 0
 178 0034 0021     		movs	r1, #0
 179 0036 0220     		movs	r0, #2
 180 0038 FFF7FEFF 		bl	nvic_setPriority
 181              	.LVL11:
  56:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
 182              		.loc 1 56 0
 183 003c 2046     		mov	r0, r4
 184 003e FFF7FEFF 		bl	timer1_Set
 185              	.LVL12:
  59:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
 186              		.loc 1 59 0
 187 0042 0120     		movs	r0, #1
 188 0044 10BD     		pop	{r4, pc}
 189              	.L17:
 190 0046 00BF     		.align	2
 191              	.L16:
 192 0048 C4C00F40 		.word	1074774212
 193 004c 00800040 		.word	1073774592
 194              		.cfi_endproc
 195              	.LFE0:
 197              		.section	.text.timer1_SetPrescale,"ax",%progbits
 198              		.align	1
 199              		.global	timer1_SetPrescale
 200              		.thumb
 201              		.thumb_func
 203              	timer1_SetPrescale:
 204              	.LFB4:
 116:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	T1PR = prescale - 1;
 205              		.loc 1 116 0
 206              		.cfi_startproc
 207              		@ args = 0, pretend = 0, frame = 0
 208              		@ frame_needed = 0, uses_anonymous_args = 0
 209              		@ link register save eliminated.
 210              	.LVL13:
 211              		.loc 1 117 0
 212 0000 014B     		ldr	r3, .L19
 213 0002 0138     		subs	r0, r0, #1
 214              	.LVL14:
 215 0004 1860     		str	r0, [r3]
 216 0006 7047     		bx	lr
 217              	.L20:
 218              		.align	2
 219              	.L19:
 220 0008 0C800040 		.word	1073774604
 221              		.cfi_endproc
 222              	.LFE4:
 224              		.section	.text.timer1_ClearCount,"ax",%progbits
 225              		.align	1
 226              		.global	timer1_ClearCount
 227              		.thumb
 228              		.thumb_func
 230              	timer1_ClearCount:
 231              	.LFB5:
 118:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** }
 119:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
 120:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ################################################################################################
 121:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // TIMER 1 OVERFLOW
 122:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ################################################################################################
 123:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ################################################################################################
 124:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
 125:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ------------------------------------------------------------------------------------------------
 126:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Descrição: 	Limpa os contador do timer 1
 127:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Parametros:	Nenhum
 128:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Retorna:		Nada
 129:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ------------------------------------------------------------------------------------------------
 130:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** inline void timer1_ClearCount(void) {
 232              		.loc 1 130 0
 233              		.cfi_startproc
 234              		@ args = 0, pretend = 0, frame = 0
 235              		@ frame_needed = 0, uses_anonymous_args = 0
 236              		@ link register save eliminated.
 131:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	T1TCR |= T1TCR_RESET;													// Reseta contador
 237              		.loc 1 131 0
 238 0000 064B     		ldr	r3, .L22
 239 0002 1A68     		ldr	r2, [r3]
 240 0004 42F00202 		orr	r2, r2, #2
 241 0008 1A60     		str	r2, [r3]
 132:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	T1TCR &= ~T1TCR_RESET;												// Tira do Reset
 242              		.loc 1 132 0
 243 000a 1A68     		ldr	r2, [r3]
 244 000c 22F00202 		bic	r2, r2, #2
 245 0010 1A60     		str	r2, [r3]
 133:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	Timer1CountOverflow = 0;
 246              		.loc 1 133 0
 247 0012 034B     		ldr	r3, .L22+4
 248 0014 0022     		movs	r2, #0
 249 0016 1A60     		str	r2, [r3]
 250 0018 7047     		bx	lr
 251              	.L23:
 252 001a 00BF     		.align	2
 253              	.L22:
 254 001c 04800040 		.word	1073774596
 255 0020 00000000 		.word	Timer1CountOverflow
 256              		.cfi_endproc
 257              	.LFE5:
 259              		.section	.text.timer1_GetCount,"ax",%progbits
 260              		.align	1
 261              		.global	timer1_GetCount
 262              		.thumb
 263              		.thumb_func
 265              	timer1_GetCount:
 266              	.LFB6:
 134:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** }
 135:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
 136:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ------------------------------------------------------------------------------------------------
 137:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Descrição: 	Retorna o valor do contador do timer 1
 138:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Parametros:	Nenhum
 139:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Retorna:		Valor do contador do timer 1
 140:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ------------------------------------------------------------------------------------------------
 141:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** inline u32 timer1_GetCount(void) {
 267              		.loc 1 141 0
 268              		.cfi_startproc
 269              		@ args = 0, pretend = 0, frame = 0
 270              		@ frame_needed = 0, uses_anonymous_args = 0
 271              		@ link register save eliminated.
 142:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	return T1TC;
 272              		.loc 1 142 0
 273 0000 014B     		ldr	r3, .L25
 274 0002 1868     		ldr	r0, [r3]
 143:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** }
 275              		.loc 1 143 0
 276 0004 7047     		bx	lr
 277              	.L26:
 278 0006 00BF     		.align	2
 279              	.L25:
 280 0008 08800040 		.word	1073774600
 281              		.cfi_endproc
 282              	.LFE6:
 284              		.section	.text.timer1_ClearOverflowCount,"ax",%progbits
 285              		.align	1
 286              		.global	timer1_ClearOverflowCount
 287              		.thumb
 288              		.thumb_func
 290              	timer1_ClearOverflowCount:
 291              	.LFB7:
 144:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
 145:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ------------------------------------------------------------------------------------------------
 146:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Descrição: 	Limpa o contador de overflow
 147:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Parametros:	Nenhum
 148:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Retorna:		Nada
 149:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ------------------------------------------------------------------------------------------------
 150:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** void timer1_ClearOverflowCount(void) {
 292              		.loc 1 150 0
 293              		.cfi_startproc
 294              		@ args = 0, pretend = 0, frame = 0
 295              		@ frame_needed = 0, uses_anonymous_args = 0
 296              		@ link register save eliminated.
 151:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	Timer1CountOverflow = 0;
 297              		.loc 1 151 0
 298 0000 014B     		ldr	r3, .L28
 299 0002 0022     		movs	r2, #0
 300 0004 1A60     		str	r2, [r3]
 301 0006 7047     		bx	lr
 302              	.L29:
 303              		.align	2
 304              	.L28:
 305 0008 00000000 		.word	Timer1CountOverflow
 306              		.cfi_endproc
 307              	.LFE7:
 309              		.section	.text.timer1_GetOverflowCount,"ax",%progbits
 310              		.align	1
 311              		.global	timer1_GetOverflowCount
 312              		.thumb
 313              		.thumb_func
 315              	timer1_GetOverflowCount:
 316              	.LFB8:
 152:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** }
 153:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
 154:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ------------------------------------------------------------------------------------------------
 155:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Descrição: 	Retorna o valor do contador de overflow do timer 1
 156:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Parametros:	Nenhum
 157:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Retorna:		Valor do contador de overflow do timer 1
 158:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ------------------------------------------------------------------------------------------------
 159:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** u32 timer1_GetOverflowCount(void) {
 317              		.loc 1 159 0
 318              		.cfi_startproc
 319              		@ args = 0, pretend = 0, frame = 0
 320              		@ frame_needed = 0, uses_anonymous_args = 0
 321              		@ link register save eliminated.
 160:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	return Timer1CountOverflow;
 322              		.loc 1 160 0
 323 0000 014B     		ldr	r3, .L31
 324 0002 1868     		ldr	r0, [r3]
 161:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** }
 325              		.loc 1 161 0
 326 0004 7047     		bx	lr
 327              	.L32:
 328 0006 00BF     		.align	2
 329              	.L31:
 330 0008 00000000 		.word	Timer1CountOverflow
 331              		.cfi_endproc
 332              	.LFE8:
 334              		.section	.text.timer1_GetCountAll,"ax",%progbits
 335              		.align	1
 336              		.global	timer1_GetCountAll
 337              		.thumb
 338              		.thumb_func
 340              	timer1_GetCountAll:
 341              	.LFB9:
 162:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
 163:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ------------------------------------------------------------------------------------------------
 164:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Descrição: 	Retorna o valor do contador do timer 1 junto com os overflows 
 165:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Parametros:	Nenhum
 166:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Retorna:		Valor do contador do timer 1
 167:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ------------------------------------------------------------------------------------------------
 168:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** inline u64 timer1_GetCountAll(void) {
 342              		.loc 1 168 0
 343              		.cfi_startproc
 344              		@ args = 0, pretend = 0, frame = 0
 345              		@ frame_needed = 0, uses_anonymous_args = 0
 346              		@ link register save eliminated.
 169:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	return (u64)T1TC + ((u64)Timer1CountOverflow * 0xFFFFFFFF);
 347              		.loc 1 169 0
 348 0000 044B     		ldr	r3, .L34
 349 0002 0021     		movs	r1, #0
 350 0004 1868     		ldr	r0, [r3]
 351 0006 044B     		ldr	r3, .L34+4
 352 0008 1A68     		ldr	r2, [r3]
 170:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** }
 353              		.loc 1 170 0
 354 000a 4FF0FF33 		mov	r3, #-1
 355 000e E3FB0201 		umlal	r0, r1, r3, r2
 356 0012 7047     		bx	lr
 357              	.L35:
 358              		.align	2
 359              	.L34:
 360 0014 08800040 		.word	1073774600
 361 0018 00000000 		.word	Timer1CountOverflow
 362              		.cfi_endproc
 363              	.LFE9:
 365              		.section	.text.timer1_SetPinOutputMatch0,"ax",%progbits
 366              		.align	1
 367              		.global	timer1_SetPinOutputMatch0
 368              		.thumb
 369              		.thumb_func
 371              	timer1_SetPinOutputMatch0:
 372              	.LFB10:
 171:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
 172:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
 173:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ################################################################################################
 174:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // TIMER 1 MATCH
 175:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ################################################################################################
 176:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Regitradores MRx:
 177:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** //	São registradores para fazer comparações com o TC e tomar alguma ação de acordo com TxMCR
 178:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
 179:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Regitradores EMRs:
 180:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // São controladores dos pinos externos mediantes a comparações MRx
 181:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** //	Os bits EMx. External Match. Quando o TC=MRx, o valor do bit pode ser mudado de acordo do seu re
 182:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** //		EMCx	ação
 183:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** //		00		Não faz nada (padrão)
 184:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** //		01		O bit assume valor 0
 185:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** //		10		O bit assume valor 1
 186:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** //		11		Troca o valor do bit
 187:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** //	Se os pinos de saida do ARM estiverem configurador para MATx, os valores dos bits EMx serão refl
 188:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
 189:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** #if (TIMER1_USE_MATCH0 == pdON)
 190:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ################################################################################################
 191:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // não necessáriamente precisa da interrupção para fazer a comparação, por exemplo
 192:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** //		podemos usar a troca do pino externo sem o uso de interrupções
 193:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
 194:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ------------------------------------------------------------------------------------------------
 195:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Descrição: 	Inicializa o pino para match 0
 196:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Parametros:	action: Define o tipo de ação no bit EM0 quando TC1=MR0 (reg de comparação 0)
 197:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** //					T1EMR_EMC0_DONOTHING:  	Faz nada quando chegar na comparação de MR0
 198:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** //					T1EMR_EMC0_CLRPIN:		Colocar o bit em nível baixo
 199:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** //					T1EMR_EMC0_SETPIN:		Coloca o bit em nível alto
 200:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** //					T1EMR_EMC0_TOGGLEPIN:	Inverte o bit
 201:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Retorna:		Nada
 202:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ------------------------------------------------------------------------------------------------
 203:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** void timer1_SetPinOutputMatch0(int action) {
 373              		.loc 1 203 0
 374              		.cfi_startproc
 375              		@ args = 0, pretend = 0, frame = 0
 376              		@ frame_needed = 0, uses_anonymous_args = 0
 377              		@ link register save eliminated.
 378              	.LVL15:
 204:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	#if defined(arm7tdmi)
 205:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	T1_MATCH0_PINSEL = (T1_MATCH0_PINSEL & ~T1_MATCH0_PINMASK) | T1_MATCH0_PIN; // Seleciona o pino ex
 206:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	#else
 207:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	MATCH1_ConfigPort0();
 379              		.loc 1 207 0
 380 0000 074A     		ldr	r2, .L37
 381 0002 1368     		ldr	r3, [r2]
 382 0004 43F44053 		orr	r3, r3, #12288
 383 0008 1360     		str	r3, [r2]
 208:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	#endif
 209:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	T1EMR = (T1EMR & ~T1EMR_EMC0_MASK) | action; // ajusta o comportamento do pino e ativa o pino exte
 384              		.loc 1 209 0
 385 000a A2F50F32 		sub	r2, r2, #146432
 386 000e A2F57472 		sub	r2, r2, #976
 387 0012 1368     		ldr	r3, [r2]
 388 0014 23F03003 		bic	r3, r3, #48
 389 0018 1843     		orrs	r0, r0, r3
 390              	.LVL16:
 391 001a 1060     		str	r0, [r2]
 392 001c 7047     		bx	lr
 393              	.L38:
 394 001e 00BF     		.align	2
 395              	.L37:
 396 0020 0CC00240 		.word	1073922060
 397              		.cfi_endproc
 398              	.LFE10:
 400              		.section	.text.timer1_SetMatch0,"ax",%progbits
 401              		.align	1
 402              		.global	timer1_SetMatch0
 403              		.thumb
 404              		.thumb_func
 406              	timer1_SetMatch0:
 407              	.LFB11:
 210:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** }
 211:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
 212:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** void timer1_SetMatch0(u32 value) {
 408              		.loc 1 212 0
 409              		.cfi_startproc
 410              		@ args = 0, pretend = 0, frame = 0
 411              		@ frame_needed = 0, uses_anonymous_args = 0
 412              		@ link register save eliminated.
 413              	.LVL17:
 213:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	T1MR0 = value;
 414              		.loc 1 213 0
 415 0000 014B     		ldr	r3, .L40
 416 0002 1860     		str	r0, [r3]
 417 0004 7047     		bx	lr
 418              	.L41:
 419 0006 00BF     		.align	2
 420              	.L40:
 421 0008 18800040 		.word	1073774616
 422              		.cfi_endproc
 423              	.LFE11:
 425              		.section	.text.timer1_ISR,"ax",%progbits
 426              		.align	1
 427              		.global	timer1_ISR
 428              		.thumb
 429              		.thumb_func
 431              	timer1_ISR:
 432              	.LFB12:
 214:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** }
 215:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
 216:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** #endif
 217:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
 218:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** #if (TIMER1_USE_MATCH1 == pdON)
 219:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ------------------------------------------------------------------------------------------------
 220:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Descrição: 	Inicializa o pino para match 1
 221:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Parametros:	action: Define o tipo de ação no bit EM1 quando TC1=MR1 (reg de comparação 1)
 222:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** //					T1EMR_EMC1_DONOTHING:  	Faz nada quando chegar na comparação de MR0
 223:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** //					T1EMR_EMC1_CLRPIN:		Colocar o bit em nível baixo
 224:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** //					T1EMR_EMC1_SETPIN:		Coloca o bit em nível alto
 225:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** //					T1EMR_EMC1_TOGGLEPIN:	Inverte o bit
 226:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Retorna:		Nada
 227:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ------------------------------------------------------------------------------------------------
 228:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** void timer1_SetPinOutputMatch1(int action) {
 229:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	#if defined(arm7tdmi)
 230:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	T1_MATCH1_PINSEL = (T1_MATCH1_PINSEL & ~T1_MATCH1_PINMASK) | T1_MATCH1_PIN; // Seleciona o pino ex
 231:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	#else
 232:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	MATCH1_ConfigPort1();
 233:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	#endif
 234:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	T1EMR = (T1EMR & ~T1EMR_EMC1_MASK) | action; // ajusta o comportamento do pino e ativa o pino exte
 235:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** }
 236:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
 237:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** void timer1_SetMatch1(u32 value) {
 238:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	T1MR1 = value;
 239:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** }
 240:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** #endif
 241:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
 242:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** #if (TIMER1_USE_MATCH2 == pdON)
 243:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** void timer1_SetMatch2(u32 value) {
 244:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	T1MR2 = value;
 245:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** }
 246:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** #endif
 247:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
 248:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** #if (TIMER1_USE_MATCH3 == pdON)
 249:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** void timer1_SetMatch3(u32 value) {
 250:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	T1MR3 = value;
 251:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** }
 252:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** #endif
 253:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
 254:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ################################################################################################
 255:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // TIMER 1 COMPTURE
 256:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ################################################################################################
 257:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ################################################################################################
 258:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** #if (TIMER1_USE_CAPTURE0 == pdON)
 259:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
 260:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ------------------------------------------------------------------------------------------------
 261:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Descrição: 	Inicializa comparação 0 do timer 1 via pino CAPn.0
 262:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Parametros:	Definir o tipo de borda do sinal de captura e ligar ou não a interrupçao
 263:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** //					(T1CCR_CR0_RISING/T1CCR_CR0_FALLING) | T1CCR_CR0_INT
 264:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Retorna:		Nada
 265:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ------------------------------------------------------------------------------------------------
 266:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** void timer1_InitCapture0(u16 sts) {
 267:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	#if defined(arm7tdmi)
 268:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	T1_CAP0_PINSEL = (T1_CAP0_PINSEL & ~T1_CAP0_PINMASK) | T1_CAP0_PIN; // Seleciona o pino externo pa
 269:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	#else
 270:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	t1cap0_ConfigPort();
 271:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	#endif
 272:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	T1CCR |= sts; 														 // Ajusta a configuração de captura
 273:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** }
 274:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
 275:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ------------------------------------------------------------------------------------------------
 276:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Descrição: 	Retorna com o valor capturado do contador timer 0, TC, durante o evento CAP0
 277:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Parametros:	Nenhum
 278:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Retorna:		Valor capturado do contador do timer0 TC armazenado no registrador CR0
 279:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ------------------------------------------------------------------------------------------------
 280:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** inline u32 timer1_GetCapture0(void) {
 281:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	return T1CR0;
 282:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** }
 283:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
 284:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ------------------------------------------------------------------------------------------------
 285:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Descrição: 	Desliga a comparação 0 do timer 1
 286:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Parametros:	Nenhum
 287:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Retorna:		Nada
 288:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ------------------------------------------------------------------------------------------------
 289:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** void timer1_StopCapture0(void) {
 290:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	#if defined(arm7tdmi)
 291:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	T1_CAP0_PINSEL &=~T1_CAP0_PINMASK;									// Seleciona o pino CAP para GPIO
 292:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	#endif
 293:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	T1CCR &= ~(T1CCR_CR0_INT | T1CCR_CR0_RISING | T1CCR_CR0_FALLING);	// Desliga as interrrupção e tip
 294:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** }
 295:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
 296:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** #endif
 297:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
 298:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** #if (TIMER1_USE_CAPTURE1 == pdON)
 299:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ------------------------------------------------------------------------------------------------
 300:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Descrição: 	Inicializa comparação 1 do timer 1 via pino CAPn.1
 301:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Parametros:	Definir o tipo de borda do sinal de captura e ligar ou não a interrupçao
 302:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** //					(T1CCR_CR1_RISING/T1CCR_CR1_FALLING) | T1CCR_CR1_INT
 303:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Retorna:		Nada
 304:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ------------------------------------------------------------------------------------------------
 305:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** void timer1_InitCapture1(u16 sts) {
 306:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	T1_CAP1_PINSEL = (T1_CAP1_PINSEL & ~T1_CAP1_PINMASK) | T1_CAP1_PIN; // Seleciona o pino externo pa
 307:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	T1CCR |= sts; 														// Ajusta a configuração de captura
 308:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** }
 309:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
 310:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ------------------------------------------------------------------------------------------------
 311:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Descrição: 	Retorna com o valor capturado do contador timer 0, TC, durante o evento CAP0
 312:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Parametros:	Nenhum
 313:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Retorna:		Valor capturado do contador do timer0 TC armazenado no registrador CR0
 314:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ------------------------------------------------------------------------------------------------
 315:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** inline u32 timer1_GetCapture1(void) {
 316:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	return T1CR1;
 317:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** }
 318:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
 319:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ------------------------------------------------------------------------------------------------
 320:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Descrição: 	Desliga a comparação 0 do timer 1
 321:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Parametros:	Nenhum
 322:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // Retorna:		Nada
 323:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ------------------------------------------------------------------------------------------------
 324:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** void timer1_StopCapture1(void) {
 325:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	#if defined(arm7tdmi)
 326:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	T1_CAP1_PINSEL &=~T1_CAP1_PINMASK;									// Seleciona o pino CAP para GPIO
 327:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	#endif
 328:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	T1CCR &= ~(T1CCR_CR1_INT | T1CCR_CR1_RISING | T1CCR_CR1_FALLING);	// Desliga as interrrupção e tip
 329:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** }
 330:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** #endif
 331:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
 332:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ################################################################################################
 333:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // TIMER 1 SERVIÇO DE INTERRUPÇÃO
 334:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ################################################################################################
 335:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** // ################################################################################################
 336:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** void timer1_ISR(void) {
 433              		.loc 1 336 0
 434              		.cfi_startproc
 435              		@ args = 0, pretend = 0, frame = 0
 436              		@ frame_needed = 0, uses_anonymous_args = 0
 437 0000 08B5     		push	{r3, lr}
 438              	.LCFI1:
 439              		.cfi_def_cfa_offset 8
 440              		.cfi_offset 3, -8
 441              		.cfi_offset 14, -4
 337:uc_libc_dev/_arch/arm_lpc/timer/timer1.c ****     ISR_ENTRY;																	// Procedimento para entrada da interrupção
 338:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	 
 339:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	// É utilizado o mach0 para contagem de overflow
 340:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	if(T1IR & T1IR_MR0I) {												// Checa se a INT gerada é do comparador 0
 442              		.loc 1 340 0
 443 0002 0B4B     		ldr	r3, .L49
 444 0004 1A68     		ldr	r2, [r3]
 445 0006 D207     		lsls	r2, r2, #31
 446 0008 0CD5     		bpl	.L44
 341:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 		T1IR |= T1IR_MR0I;												// Limpa o flag da INT 
 447              		.loc 1 341 0
 448 000a 1A68     		ldr	r2, [r3]
 449 000c 42F00102 		orr	r2, r2, #1
 450 0010 1A60     		str	r2, [r3]
 342:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 		
 343:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 		Timer1CountOverflow++;
 451              		.loc 1 343 0
 452 0012 084A     		ldr	r2, .L49+4
 453 0014 1368     		ldr	r3, [r2]
 454 0016 0133     		adds	r3, r3, #1
 455 0018 1360     		str	r3, [r2]
 344:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 		
 345:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 		if(timer1_IntFunctions[TIMER1_VECTOR_INT_MATCH0])				// Checa se existe uma função anexada
 456              		.loc 1 345 0
 457 001a 074B     		ldr	r3, .L49+8
 458 001c 1A68     		ldr	r2, [r3]
 459 001e 0AB1     		cbz	r2, .L44
 346:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 			timer1_IntFunctions[TIMER1_VECTOR_INT_MATCH0]();				// Execute a função em anexo
 460              		.loc 1 346 0
 461 0020 1B68     		ldr	r3, [r3]
 462 0022 9847     		blx	r3
 463              	.LVL18:
 464              	.L44:
 347:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	}
 348:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	
 349:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	#if (TIMER1_USE_MATCH1 == pdON)
 350:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	else if(T1IR & T1IR_MR1I) {											// Checa se a INT gerada é do comparador 1
 351:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 		T1IR |= T1IR_MR1I;												// Limpa o flag da INT 
 352:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
 353:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 		if(timer1_IntFunctions[TIMER1_VECTOR_INT_MATCH1])				// Checa se existe uma função anexada
 354:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 			timer1_IntFunctions[TIMER1_VECTOR_INT_MATCH1]();				// Execute a função em anexo
 355:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	}
 356:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	#endif
 357:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
 358:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	#if (TIMER1_USE_MATCH2 == pdON)
 359:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	else if(T1IR & T1IR_MR2I) {											// Checa se a INT gerada é do comparador 0
 360:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 		T1IR |= T1IR_MR2I;												// Limpa o flag da INT 
 361:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
 362:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 		if(timer1_IntFunctions[TIMER1_VECTOR_INT_MATCH2])				// Checa se existe uma função anexada
 363:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 			timer1_IntFunctions[TIMER1_VECTOR_INT_MATCH2]();				// Execute a função em anexo
 364:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	}
 365:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	#endif
 366:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	
 367:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	#if (TIMER1_USE_MATCH3 == pdON)
 368:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	else if(T1IR & T1IR_MR3I) {											// Checa se a INT gerada é do comparador 0
 369:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 		T1IR |= T1IR_MR3I;												// Limpa o flag da INT 
 370:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
 371:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 		if(timer1_IntFunctions[TIMER1_VECTOR_INT_MATCH3])				// Checa se existe uma função anexada
 372:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 			timer1_IntFunctions[TIMER1_VECTOR_INT_MATCH3]();				// Execute a função em anexo
 373:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	}
 374:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	#endif
 375:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	
 376:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	#if (TIMER1_USE_CAPTURE0 == pdON)
 377:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	else if(T1IR & T1IR_CR0I) {											// Checa se a INT gerada é do captura 0
 378:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 		T1IR |= T1IR_CR0I;												// Limpa o flag da INT 
 379:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
 380:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 		if(timer1_IntFunctions[TIMER1_VECTOR_INT_CAPTURE0])				// Checa se existe uma função anexada
 381:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 			timer1_IntFunctions[TIMER1_VECTOR_INT_CAPTURE0]();			// Execute a função em anexo
 382:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	}
 383:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	#endif
 384:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	
 385:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	#if (TIMER1_USE_CAPTURE1 == pdON)
 386:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	else if(T1IR & T1IR_CR1I) {											// Checa se a INT gerada é do captura 1
 387:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 		T1IR |= T1IR_CR1I;												// Limpa o flag da INT 
 388:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
 389:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 		if(timer1_IntFunctions[TIMER1_VECTOR_INT_CAPTURE1])				// Checa se existe uma função anexada
 390:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 			timer1_IntFunctions[TIMER1_VECTOR_INT_CAPTURE1]();			// Execute a função em anexo
 391:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	}
 392:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	#endif
 393:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
 394:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	// Limpa interrupção 
 395:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	#if defined(arm7tdmi)
 396:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	VICSoftIntClr = (1<<VIC_TIMER1);
 397:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	#endif
 398:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	#if defined (cortexm3)
 399:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	nvic_clearPendingIRQ(VIC_TIMER1);
 400:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	#endif
 401:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 
 402:uc_libc_dev/_arch/arm_lpc/timer/timer1.c ****     ISR_EXIT;															// Procedimento para saida da interrupção    
 403:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** }
 465              		.loc 1 403 0
 466 0024 BDE80840 		pop	{r3, lr}
 467              	.LCFI2:
 468              		.cfi_restore 14
 469              		.cfi_restore 3
 470              		.cfi_def_cfa_offset 0
 399:uc_libc_dev/_arch/arm_lpc/timer/timer1.c **** 	#endif
 471              		.loc 1 399 0
 472 0028 0220     		movs	r0, #2
 473 002a FFF7FEBF 		b	nvic_clearPendingIRQ
 474              	.LVL19:
 475              	.L50:
 476 002e 00BF     		.align	2
 477              	.L49:
 478 0030 00800040 		.word	1073774592
 479 0034 00000000 		.word	Timer1CountOverflow
 480 0038 00000000 		.word	timer1_IntFunctions
 481              		.cfi_endproc
 482              	.LFE12:
 484              		.comm	Timer1CountOverflow,4,4
 485              		.comm	timer1_IntFunctions,32,4
 486              		.text
 487              	.Letext0:
 488              		.file 2 "uc_libc_dev/_libdef/uc_libdefs.h"
 489              		.file 3 "uc_libc_dev/_arch/arm_lpc/common/vic_cortexm3.h"
DEFINED SYMBOLS
                            *ABS*:00000000 timer1.c
D:\_temp\_windows\ccX64KZE.s:20     .text.timer1_Set:00000000 $t
D:\_temp\_windows\ccX64KZE.s:25     .text.timer1_Set:00000000 timer1_Set
D:\_temp\_windows\ccX64KZE.s:48     .text.timer1_Set:00000014 $d
D:\_temp\_windows\ccX64KZE.s:53     .text.timer1_SetIntHandler:00000000 $t
D:\_temp\_windows\ccX64KZE.s:58     .text.timer1_SetIntHandler:00000000 timer1_SetIntHandler
D:\_temp\_windows\ccX64KZE.s:76     .text.timer1_SetIntHandler:0000000c $d
                            *COM*:00000020 timer1_IntFunctions
D:\_temp\_windows\ccX64KZE.s:81     .text.timer1_ClearIntHandler:00000000 $t
D:\_temp\_windows\ccX64KZE.s:86     .text.timer1_ClearIntHandler:00000000 timer1_ClearIntHandler
D:\_temp\_windows\ccX64KZE.s:105    .text.timer1_ClearIntHandler:00000010 $d
D:\_temp\_windows\ccX64KZE.s:110    .text.timer1_Init:00000000 $t
D:\_temp\_windows\ccX64KZE.s:115    .text.timer1_Init:00000000 timer1_Init
D:\_temp\_windows\ccX64KZE.s:192    .text.timer1_Init:00000048 $d
D:\_temp\_windows\ccX64KZE.s:198    .text.timer1_SetPrescale:00000000 $t
D:\_temp\_windows\ccX64KZE.s:203    .text.timer1_SetPrescale:00000000 timer1_SetPrescale
D:\_temp\_windows\ccX64KZE.s:220    .text.timer1_SetPrescale:00000008 $d
D:\_temp\_windows\ccX64KZE.s:225    .text.timer1_ClearCount:00000000 $t
D:\_temp\_windows\ccX64KZE.s:230    .text.timer1_ClearCount:00000000 timer1_ClearCount
D:\_temp\_windows\ccX64KZE.s:254    .text.timer1_ClearCount:0000001c $d
                            *COM*:00000004 Timer1CountOverflow
D:\_temp\_windows\ccX64KZE.s:260    .text.timer1_GetCount:00000000 $t
D:\_temp\_windows\ccX64KZE.s:265    .text.timer1_GetCount:00000000 timer1_GetCount
D:\_temp\_windows\ccX64KZE.s:280    .text.timer1_GetCount:00000008 $d
D:\_temp\_windows\ccX64KZE.s:285    .text.timer1_ClearOverflowCount:00000000 $t
D:\_temp\_windows\ccX64KZE.s:290    .text.timer1_ClearOverflowCount:00000000 timer1_ClearOverflowCount
D:\_temp\_windows\ccX64KZE.s:305    .text.timer1_ClearOverflowCount:00000008 $d
D:\_temp\_windows\ccX64KZE.s:310    .text.timer1_GetOverflowCount:00000000 $t
D:\_temp\_windows\ccX64KZE.s:315    .text.timer1_GetOverflowCount:00000000 timer1_GetOverflowCount
D:\_temp\_windows\ccX64KZE.s:330    .text.timer1_GetOverflowCount:00000008 $d
D:\_temp\_windows\ccX64KZE.s:335    .text.timer1_GetCountAll:00000000 $t
D:\_temp\_windows\ccX64KZE.s:340    .text.timer1_GetCountAll:00000000 timer1_GetCountAll
D:\_temp\_windows\ccX64KZE.s:360    .text.timer1_GetCountAll:00000014 $d
D:\_temp\_windows\ccX64KZE.s:366    .text.timer1_SetPinOutputMatch0:00000000 $t
D:\_temp\_windows\ccX64KZE.s:371    .text.timer1_SetPinOutputMatch0:00000000 timer1_SetPinOutputMatch0
D:\_temp\_windows\ccX64KZE.s:396    .text.timer1_SetPinOutputMatch0:00000020 $d
D:\_temp\_windows\ccX64KZE.s:401    .text.timer1_SetMatch0:00000000 $t
D:\_temp\_windows\ccX64KZE.s:406    .text.timer1_SetMatch0:00000000 timer1_SetMatch0
D:\_temp\_windows\ccX64KZE.s:421    .text.timer1_SetMatch0:00000008 $d
D:\_temp\_windows\ccX64KZE.s:426    .text.timer1_ISR:00000000 $t
D:\_temp\_windows\ccX64KZE.s:431    .text.timer1_ISR:00000000 timer1_ISR
D:\_temp\_windows\ccX64KZE.s:478    .text.timer1_ISR:00000030 $d
                     .debug_frame:00000010 $d

UNDEFINED SYMBOLS
nvic_enableIRQ
nvic_setPriority
nvic_clearPendingIRQ
